package com.xqb.modules.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @author 2092466583
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CourseAllInfoVo {
    /** 课程id，对应正式id */
    private Long id;

    /** 机构id */
    private Long insId;

    /** 课程名称 */
    private String name;

    /**
     * 课程类型，1：线上课，2：线下课
     */
    private Long courseType;

    /**
     * 封面链接
     */
    private String coverUrl;

    /**
     * 售卖方式0付费，1：免费
     */
    private Long free;
    /**
     * 一级课程分类id
     */
    private Long firstCateId;
    /**
     * 二级课程分类id
     */
    private Long secondCateId;
    /**
     * 三级课程分类id
     */
    private Long thirdCateId;
    /**
     * 课程价格，单位为分
     */
    private Long price;

    /**
     * 模板类型，1：固定模板，2：自定义模板
     */
    private Long templateType;

    /**
     * 自定义模板的连接
     */
    private String templateUrl;

    /**
     * 课程状态，1：待上架，2：已上架，3：下架，4：已完结
     */
    private Long status;

    /** 课程购买有效期开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date purchaseStartTime;

    /** 课程购买有效期结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date purchaseEndTime;

    /** 课程评价得分，45代表4.5星 */
    private Long score;

    /** 课程总时长 */
    private Integer mediaDuration;

    /** 课程有效期，单位月 */
    private Long validDuration;

    /** 课程总节数，包括练习 */
    private Long sectionNum;
    /** 发布次数 */
    private Long publishTimes;

    /** 最近一次发布时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date publishTime;
    /**
     * 课程介绍
     */
    private String courseIntroduce;

    /**
     * 适用人群
     */
    private String usePeople;

    /**
     * 课程详情
     */
    private String courseDetail;
    /**
     * 是否收藏
     */
    private boolean isLike;
    /**
     * 课程状态 0：未购买，1：已购买，2：已过期
     */
    private Integer statusType;
    /**
     * 公告
     */
    private String announcement;

    /**
     * 评分标准
     */
    private String gradingCriteria;
    /**
     * 课程报名数量
     */
    private Long enrollNum;
    /**
     * 评论数
     */
    private Long evaluationNum;
}
